Joint demodulation and interference suppression using serial localization with indecision

ABSTRACT

A receiver includes a constellation processing module and a multi-stage demodulator having a plurality of non-final demodulation stages and a final demodulation stage. The constellation processing module derives a set of centroid-based values from subsets of constellation points associated with a plurality of transmitted signals for input to each of the non-final demodulation stages. Each of the non-final demodulation stages demodulates a group of signals input to the non-final demodulation stage using the set of centroid-based values as constellation points and suppresses residual interference associated with using the set of centroid-based values as constellation points for signal demodulation. The final demodulation stage demodulates a group of modified signals input to the final demodulation stage using the subset of constellation points input to the final demodulation stage to determine a final symbol decision for the plurality of transmitted signals.

TECHNICAL FIELD

The present invention generally relates to joint demodulation and interference suppression, and more particularly relates to joint demodulation and interference suppression based on serial localization with indecision.

BACKGROUND

Multi-stage arbitration (MSA) involves sifting through a large set of candidates in multiple stages, where each stage rejects some candidates, until a single candidate is left after the final stage. MSA-based receivers have been used in MIMO (Multiple-Input, Multiple-Output) environments where information is transmitted and received using a plurality of antennas. In a multi-stream scenario such as MIMO or multi-code transmission, MSA increases the number of streams processed jointly in consecutive stages. That is, in the first stage, each stream may be processed individually by a single detector (SD), pairs of streams may be processed together by a joint detector (JD) in the second stage, and so on. Doing so ensures complexity remains manageable, while mimicking the behavior of a true JD over all streams, which is MLD (Maximum-Likelihood Detection) in this scenario.

Consider an N×N MIMO scenario over a non-dispersive channel, given by: r=Hs+n  (1) Here r, s and n are N×1 vectors, and H is a N×N matrix. The components of H are independent and Rayleigh faded, and by default, n is white Gaussian noise with covariance R_(n)=σ²I. More generally, n may have any covariance, which can be estimated by conventional methods. All N signals are from the same constellation Q of size q, and all N signals are transmitted with the same power. The effective constellation for s is of size q^(N). The full JD is the MLD for s, which searches over all q^(N) candidates ŝ for one that minimizes the squared distance given by: (r−Hŝ)^(H)(r−Hŝ)  (2) The JD can be modified by letting the set A contain the N_(A) out of N streams being processed jointly, and the set B contain the remaining N_(B)=N−N_(A) streams acting as interference. The signals in set B are modeled as colored noise, and suppressed by a whitening pre-filter. This type of receiver is referred to herein as a whitening JD (WJD).

Without loss of generality, it can be assumed that A occupies the top of s, and B occupies the bottom of s. Other cases follow similarly. The transmitted signals s, channel H and received signals r can then be respectively expressed as:

$\begin{matrix} {s = \begin{bmatrix} s_{A} \\ s_{B} \end{bmatrix}} & (3) \\ {H = \left\lbrack {H_{A},H_{B}} \right\rbrack} & (4) \\ {and} & \; \\ {r = {{{H_{A}s_{A}} + {H_{B}s_{B}} + n} = {{H_{A}s_{A}} + u}}} & (5) \end{matrix}$ where H_(A) is a N×N_(A) matrix, H_(B) is a N×N_(B) matrix, s_(A) is a N_(A)×1 vector, s_(B) is a N_(B)×1 vector and u is a N×1 vector.

Vector u can be modeled as a colored noise and the transmitted symbols are presumed to have zero mean. This is the case for most well known constellations. Under these conditions, s_(B) has zero mean, and consequently so does H_(B)s_(B). In addition, H_(B)s_(B) has covariance given by: R _(B) =H _(B) H _(B) ^(H) E _(B)  (6) where E_(B) is the average symbol energy in s_(B). Thus u has zero mean and covariance as given by: R _(u) =R _(B) +R _(n)  (7) With the colored noise model, the JD for A searches over all q^(N) ^(A) candidates ŝ_(A) for one that minimizes the following metric: (r−H _(A) ŝ _(A))^(H) R _(u) ⁻¹(r−H _(A) ŝ _(A))=r ^(H) R _(u) ⁻¹ r−2Re{ŝ _(A) H _(A) ^(H) R _(u) ⁻¹ r}+ŝ _(A) ^(H) H _(A) ^(H) R _(u) ⁻¹ H _(A) ŝ _(A)  (8) Equation (8) can be manipulated to identify a pre-filter, whose output feeds a detector. The N×N_(A) matrix given by: W=R _(u) ⁻¹ H _(A)  (9) is the pre-filter. The output of the pre-filter is the N_(A)×1 vector given by: z _(A) =W ^(H) r  (10) The first term from equation (8) can be dropped since it does not depend on ŝ_(A). The remaining two terms from equation (8) are identified as: m(ŝ _(A))=−2Re{ŝ _(A) z _(A) }+ŝ _(A) ^(H) H _(A) ^(H) R _(u) ⁻¹ H _(A) ŝ _(A)  (11) which will be used as the metric of the JD with input z_(A). Thus the WJD consists of a pre-filter given by equation (9), and a JD with a metric given by equation (11).

This detector is optimal when u is a jointly Gaussian noise vector with zero mean and covariance R_(u). The pre-filter collects the energy of the desired signal in A while suppressing the other signals in B as interference. The whitening SD (WSD) is a special case of the WJD with N_(A)=1. The pre-filter for SD whitens the interference from the remaining N_(B)=N−1 streams. The pre-filter vector W is a N×1 vector, and the output z_(A) is a scalar. The detector compares q candidates ŝ₁ for signal s₁. The problem with JD is the corresponding exploding complexity, whether due to the size of the modulation itself, or to the exponential effect of multiple streams. The whitening JD helps to reduce the complexity by limiting the number of signals processed jointly. However, further complexity reduction is often desirable.

SUMMARY

Joint demodulation and interference suppression is performed in a series of stages. Each stage includes a serial localization with indecision (SLI) block adapted for use in a MSA receiver for MIMO or multi-coded signal transmission scenarios. Each SLI block functions as a multi-stage detector. The SLI blocks combine JD for a number of MIMO streams or SD for a single stream, and perform interference suppression for the remaining streams. Interference suppression can be achieved by a pre-filter that models sources of interference as colored noise. The sources include a self-interference residual signal due to the use of sets of centroid-based values for demodulation instead of actual constellation points. Adjacent sets of centroid-based values have overlapping points, which introduces indecision. The indecision feature of SLI is beneficial in a multi-stage structure such as MSA, because the indecision discourages an irreversible bad decision in an early stage.

According to an embodiment of a method for jointly demodulating and suppressing interference from a plurality of transmitted signals transmitted using a multi-antenna and/or multi-code transmission scheme, the method includes deriving a set of centroid-based values from subsets of constellation points associated with the transmitted signals for input to each non-final stage of a multi-stage demodulator. A group of signals input to each of the non-final stages is demodulated using the corresponding set of centroid-based values as constellation points. Residual interference associated with using the set of centroid-based values as constellation points for demodulating the group of signals input to each of the non-final stages is suppressed. A group of modified signals input to a final stage of the multi-stage demodulator is demodulated using the subset of constellation points input to the final stage to determine a final symbol decision for the plurality of transmitted signals.

Of course, the present invention is not limited to the above features and advantages. Those skilled in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an embodiment of a receiver including an MSA-SLI demodulator and a constellation processing module.

FIG. 2 illustrates a diagram of an embodiment of overlapping constellation subsets for use by an MSA-SLI demodulator.

FIG. 3 illustrates a diagram of an embodiment of overlapping ASK constellation subsets for use by an MSA-SLI demodulator.

FIG. 4 illustrates a diagram of an embodiment of overlapping QAM constellation subsets for use by an MSA-SLI demodulator.

FIG. 5 illustrates a diagram of another embodiment of overlapping QAM constellation subsets for use by an MSA-SLI demodulator.

FIG. 6 illustrates a block diagram of an embodiment of an i-th stage of an MSA-SLI demodulator.

FIG. 7 illustrates a block diagram of an embodiment of 2-stage MSA-SLI receiver structure.

FIG. 8 illustrates a block diagram of an embodiment of 3-stage MSA-SLI receiver structure.

FIG. 9 illustrates a block diagram of another embodiment of 2-stage MSA-SLI receiver structure.

DETAILED DESCRIPTION

FIG. 1 illustrates an embodiment of a wireless transmitter 100 in communication with a wireless receiver 110 over a channel 120. The receiver includes a baseband processor 130 and a constellation processing module 140 and a MSA-SLI demodulator 150 included in or associated with the baseband processor 130. The constellation processing module 140 groups points of a constellation associated with a plurality of transmitted signal into different subsets, e.g., subsets of ASK (Amplitude-Shift Keying) constellation points, QAM (Quadrature Amplitude Modulation) constellation points, etc. At least two adjacent subsets have one or more common constellation points to ensure that these adjacent subsets overlap. In some embodiments, all adjacent subsets have one or more common constellation points to ensure that all adjacent subsets overlap. In each case, the constellation processing module 140 also determines a centroid-based value for each of the subsets of constellation points and groups the centroid-based values into one or more sets. The values included in each set are centroid-based in that they may be actual centroids, approximations of centroids such as integer values or values quantized to a certain finite precision, the closest constellation point to a centroid, etc. More generally, each subset is assigned a representative, which we call a centroid from here on.

The MSA SLI demodulator 150 includes different non-final demodulation stages 152 for sifting through a large set of candidates in multiple stages, where each non-final stage rejects some candidates, until a single candidate is left after the final stage 154. The MSA-SLI demodulator 150 is well adapted for MIMO and multi-coded transmission environments. In a multi-stream scenario such as MIMO or multi-code transmission, the MSA-SLI demodulator 150 increases the number of streams processed jointly in consecutive stages. For example, in a first one of the non-final stages 152, individual single detectors process the entire received signal vector r, each detecting a single stream. In the second stage, joint detectors (JD) process the entire received vector r, or a modified version of r, each detecting a pair of streams, and so on. Unlike conventional MSA structures, the non-final stages 152 of the MSA-SLI demodulator 150 do not use the true signal constellation to perform demodulation and interference suppression. Instead, the non-final demodulation stages 152 use sets of centroid-based values derived from the actual signal constellation to process the signal input to the respective stages. Only the last stage 154 of the MSA-SLI demodulator 150 uses a subset of the true signal constellation for signal processing.

In more detail, the MSA-SLI demodulator 150 has m total stages where m≧2. The demodulators included in the first stage of the non-final demodulation stages 152 demodulate the entire received signal vector r input to the stage using the set of centroid-based values Q′^([1]) input to or selected by the first stage as constellation points. Each of the demodulators include in the first non-final demodulation stage 152 also suppress the residual interference associated with using the set of centroid-based values as constellation points for signal demodulation instead of the true constellation. Each of the remaining non-final stages 152 demodulate a modified signal vector output by the immediately preceding stage using the set of centroid-based values Q′^([2]), . . . , Q′^([m−1]) input to or selected by the stage as constellation points. The final demodulation stage 154 demodulates modified signal vector r′ input to the final demodulation stage using the subset of constellation points associated with the transmitted signals to determine a final symbol decision ŝ_(k) for the transmitted signals. The constellation processing module 140 ensures that at least two adjacent subsets of constellation points overlap to reduce the likelihood of demodulation errors, particularly for the earlier non-final demodulation stages 152 as will be described in more detail later herein.

FIG. 2 illustrates the effective decision boundary between adjacent subsets X and Y in two dimensions, where the hyperplane becomes a straight line and each constellation point is represented by a circle. In contrast, the decision boundary for a Maximum Likelihood (ML) detector such as JD is a piecewise straight jagged line. The discrepancy between these hypothetical decision boundaries leads to a performance loss in MSA-SLI.

Overlapping adjacent subsets smoothes the decision boundary discrepancy. In particular, in the two stage MSA-SLI, including nearest neighbor symbols pairs in the overlap of adjacent subsets of the first stage means that the first stage does not have to make a decision about those symbols. That decision will be made in the second stage.

With MSA-SLI, the search is further localized from one stage to the next, but the final decision is not made until the last stage. In particular, by making nearest neighbor symbols belong to multiple subsets, a later demodulation stage may recover from an error in an earlier stage. In this context, indecision is beneficial. However, ensuring adjacent subsets overlap has a cost. In terms of complexity, q′ or q″, or both, will increase for the overlap case in comparison to the disjoint case.

FIG. 3 illustrates an exemplary embodiment of an 4-ASK constellation grouped into three subsets. The 4-ASK constellation is given by: Q={−3,−1,+1,+3}  (12) The three overlapping subsets shown in FIG. 3 have centroids given by: Q′={−2,0,+2}  (13) The two outer subsets shown in FIG. 3 are offsets of one another, and the offset is equal to the centroid difference. MSA-SLI complexity can be further reduced by accounting for the highly structured nature of these subsets. Of course, less structured subsets can also be used with the MSA-SLI receiver structures described herein.

FIG. 4 illustrates an embodiment where the ASK subset design shown in FIG. 3 is extended to 16-QAM. Each QAM constellation point shown in FIG. 4 is represented by an ‘X’ and the centroids by an ‘o’. The three ASK subsets shown in FIG. 3 yield nine subsets for 16-QAM as illustrated by the boxes drawn around the different groups of constellation points in FIG. 4. At least two adjacent subsets have overlapping constellation points. This design is referred to herein as SL32, in reference to the ASK subsets. Let Q^([1]) denote the set of 16-QAM centroids and Q^([2]) denote the centered subset with 4 elements, corresponding to QPSK. The SL32 design can be used in a 2-stage MSA SLI receiver, where the first stage uses Q^([1]) of size q^([1])=9, and the second stage uses Q^([2]) size q^([2])=4.

The same concept applies to 64-QAM. With two stages, the MSA-SLI design is referred to herein as SL34, with q^([1])=9, and q^([2])=16, corresponding to 16-QAM. Dividing the 16-QAM subset again as before, we get a MSA SLI design referred to herein as SL332 which is suited for three stages, with q^([1])=9, q^([2])=9, and q^([3])=4. The SL332 design is well suited for use with 4×4 MIMO as will be described in more detail later herein. The design of overlapping subsets need not be based on the component ASK constellation.

FIG. 5 illustrates an embodiment of the 16-QAM constellation where each of the subsets is directly determined from the QAM constellation associated with the transmitted signals and not derived from ASK. Each QAM constellation point shown in FIG. 5 is represented by an ‘X’ and the subsets are shown as boxes drawn around different groups of constellation points. Again, two or more adjacent subsets have overlapping constellation points. Each of the MSA-SLI demodulation embodiments described herein, including subset selection, yield a low complexity alternative to MLD with good performance. MSA-SLI demodulation provides a distinct complexity advantage as the effective modulation constellation grows, such as in MIMO and multi-code scenarios.

FIG. 6 illustrates an embodiment of a whitening SLI block 200 for use as a demodulator in the i-th non-final stage 152 of the MSA-SLI demodulator 150. The whitening SLI block 200 demodulates the signals included in set A (denoted as signal s_(A)) and suppresses the remainder of the signals included in set B (denoted as signal s_(B)). The whitening SLI block 200 includes a pre-filter 210 and a JD 220. The pre-filter 210 filters the signal vector r^([i−1]) output by the immediately preceding stage of the MSA-SLI demodulator 150 to suppress signal set B. The pre-filter output N_(A)×1 is a vector denoted by z_(A) ^([i]). The JD 220 uses centroid-based constellation Q^([1]) provided by the constellation processing module 140 to perform demodulation and interference suppression on the pre-filter output instead of using the true constellation Q, and the search is over (q^([i]))^(N) ^(A) candidates ŝ_(A) ^([i]). In more detail, the JD 220 operates over N_(A) signals in A to produces ŝ_(A) ^([i]). The metric m(ŝ_(A)) in equation (11) is suited for the whitening SLI block 220, in the sense that m(ŝ_(A)) puts no particular restriction on ŝ_(A). As such, ŝ_(A) can be replaced with ŝ_(A) ^([i]), and m(ŝ_(A) ^([i])) can be computed based on ŝ_(A) ^([i]) as given by equation (11) with this substitution. As a result, the whitening SLI block 220 for the i-th non-final stage 152 of the MSA SLI demodulator 150 produces a localization of signal s_(A). The use of Q^([1]) instead of Q causes an intentional residual signal which acts as self-interference. Equation (5) can be expanded to highlight the residual signal for the two-stage case as follows: r=H _(A) s _(A) ^([1]) +H _(A) s _(A) ^([2]) +H _(B) s _(B) +n=H _(A) s _(A) ^([1]) +v  (14)

The residual signal H_(A)s_(A) ^([2]) can be accounted for by modeling it as a second colored noise, with zero mean, and covariance as given by: R _(A) ^(res) =H _(A) H _(A) ^(H) E _(A) ^(res)  (15) where E_(A) ^(res) is the energy in the residual signal, corresponding to subset Q^([2]) for the two-stage case. The total covariance then becomes: R _(v) =R _(B) +R _(A) ^(res) R _(n)  (16) The rest of the operations are similar to that of a conventional whitening JD, except that R_(u) of equation (7) is replaced with R_(v) of equation (16).

In general, at any stage of the MSA-SLI demodulator 150, the residual interference is properly accounted for. The exception is the last stage 154, where there is no residual interference left. In particular, with the SL32 subset design for 16-QAM, E_(A) ^(res) in the first non-final stage 152 corresponds to Q^([2]), which coincides with the QPSK constellation. For the SL34 design and 64-QAM, E_(A) ^(res) in the first non-final stage 152 corresponds to Q^([2]), which coincides with the 16-QAM constellation. For the 3-stage MSA-SLI with the SL332 design and 64-QAM, E_(A) ^(res) in the first non-final stage 152 corresponds to the 16QAM subset, which is different from Q^([2]). In the second stage 154, E_(A) ^(res) corresponds to Q^([3]), which coincides with the QPSK subset. In the third and last stage, there is no residual interference, and E_(A) ^(res) is zero.

FIG. 7 illustrates an embodiment of a 2-stage MSA-SLI receiver structure 300. The first stage 310 includes two demodulators 320, 330, each demodulator including a pre-filter 322, 332 and a JD 324, 334, respectively. The pre-filter 322 of the first demodulator 320 suppresses signal B for the benefit of signal A. The pre-filter 332 of the second demodulator 330 similarly suppresses signal A for the benefit of signal B. The JD 324 of the first demodulator 320 accepts the pre-filter output z_(A) ^([1]) and functions as a whitening JD over the centroid-based constellation Q^([1]), determining localized symbol ŝ_(A) ^([1]) in accordance with equations (6)-(11). The JD 334 of the second demodulator 330 similarly accepts the pre-filter output z_(B) ^([1]) and also functions as a whitening JD over the centroid-based constellation Q^([1]), determining localized symbol decision ŝ_(B) ^([1]). For the second demodulator 330 of the first stage 310, the roles of sets A and B are reversed. In particular, H_(A) and H_(B) are switched in equations (6)-(11). The reconstructed signal based on ŝ_(A) ^([1]) and ŝ_(B) ^([1]) is subtracted from r by a signal canceller 340 to produce r^([1]). The second stage 350 of the 2-stage MSA-SLI receiver structure 300 also includes a demodulator 352 which accepts modified signal vector r^([1]) and functions as a JD over constellation Q^([2]).

Operation of the 2-stage MSA-SLI receiver structure 300 is described next in more detail. For notational compactness, a block that operates jointly over K streams is referred to as JD-K. The reconstructed signal based on ŝ_(A) ^([1]) and ŝ_(B) ^([1]) is subtracted from the original received signal vector r to produce modified signal vector r^([1]) as given by:

$\begin{matrix} \begin{matrix} {r^{\lbrack 1\rbrack} = {r - {H\begin{bmatrix} {\hat{s}}_{A}^{\lbrack 1\rbrack} \\ {\hat{s}}_{B}^{\lbrack 1\rbrack} \end{bmatrix}}}} \\ {= {r - {H_{A}{\hat{s}}_{A}^{\lbrack 1\rbrack}} - {H_{B}{\hat{s}}_{B}^{\lbrack 1\rbrack}}}} \\ {= {r - {\hat{r}}_{A}^{\lbrack 1\rbrack} - {\hat{r}}_{B}^{\lbrack 1\rbrack}}} \end{matrix} & (17) \end{matrix}$ This can be interpreted as a cancellation of the effects of the partial solutions ŝ_(A) ^([1]) and ŝ_(B) ^([1]). The localized symbol decision determined by the demodulator 352 included in the second stage 350 of the 2-stage MSA-SLI receiver structure 300 is denoted ŝ^([2]). Finally, ŝ_(A) ^([1]), ŝ_(B) ^([1]) and ŝ^([2]) are combined to produce the overall solution as given by:

$\begin{matrix} {\hat{s} = {\begin{bmatrix} {\hat{s}}_{A}^{\lbrack 1\rbrack} \\ {\hat{s}}_{B}^{\lbrack 1\rbrack} \end{bmatrix} + {\hat{s}}^{\lbrack 2\rbrack}}} & (18) \end{matrix}$ One skilled in the art will readily recognize that going from two stages to a more general multi-stage structure is straightforward.

For example, consider a second stage SLI block with signal vector input r^([1]) and which processes N_(A)<N streams. From equation (17), all of the reconstructed signals have been subtracted from r^([1]). Thus, the effective symbol energy of the interfering signals in set B is adjusted from E_(B) to a smaller quantity E_(B) ^(res), which can be computed from the residual constellation, e.g. as was done for E_(A) ^(res) as previously described herein. This adjustment is made for any SLI block in the second or later stage with N_(A)<N. If N_(A)=N, then the set B is empty, and there is no whitening that must be done.

The MSA-SLI receiver structures disclosed herein readily apply to MIMO with QAM. For example, the MSA-SLI receiver structures disclosed herein can be applied to 2×2 MIMO with 16-QAM. In one embodiment, the MSA-SLI architecture employs the SL32 design where A={1} and B={2}. Referring to FIG. 7, in the first stage 310, the two SLI blocks 320, 330 each function as an SD (instead of a JD) over Q^([1]) with q^([1])=9. In the second stage 350, the SLI block 352 functions as a JD over QPSK with q^([2])=4. As such, each SD included in the first stage 310 pre-filters both signal streams down to one stream and jointly demodulates the single stream over a centroid-based constellation of size 9. In the second stage 350, the modified streams output by both SDs form a modified signal vector which is processed jointly by a JD, over a reduced alphabet of size 16, for a total of 34 metrics.

For 2×2 MIMO with 64-QAM, the SL34 MSA-SLI design can be used. In another embodiment, four SDs are used in the first stage and two JDs are used in the second (final) stage. This is similar to the 2×2 MIMO receiver previously described herein, with whitening added in the second stage. In yet another embodiment, 4 SDs are used in the first stage and a single JD is used in the second (final) stage. The JD of the final stage jointly processes all four modified signals output by the SDs of the first stage according to this embodiment. However, complexity grows accordingly. In still another embodiment, two JDs are used in the first stage. Each JD jointly processes two of the signal components, treating the other two signal components as noise as previously described herein. A single JD is included in the second (final) stage for jointly processing the outputs of both JDs of the first stage. This embodiment adds to the complexity, but is effective.

FIG. 8 illustrates an embodiment of a 3-stage MSA SLI receiver structure 400 for use in a 4×4 MIMO, 64-QAM environment. The first stage 410 includes four WSDs 412-418, the second stage 420 two WJDs 422, 424 and the third stage 430 a single JD 432. Each of the WSDs 412-418 of the first stage 410 processes the entire received signal vector r using the centroid-based constellation Q^([1]) provided by the constellation processing module 140 for the first stage 410, treating the remaining signals as interference which is suppressed as previously described herein. A cancellation block 419 included in or associated with the first stage 410 modifies the original signal vector r to produce a modified signal vector r^([1]) given by:

$\begin{matrix} {r^{\lbrack 1\rbrack} = {r - {H\begin{bmatrix} \begin{matrix} {\hat{s}}_{1}^{\lbrack 1\rbrack} \\ {\hat{s}}_{2}^{\lbrack 1\rbrack} \end{matrix} \\ {\hat{s}}_{3}^{\lbrack 1\rbrack} \\ {\hat{s}}_{4}^{\lbrack 1\rbrack} \end{bmatrix}}}} & (19) \end{matrix}$

The first JD 422 of the second stage 420 processes the modified signal vector r^([1]) output by the first cancellation block 419 to detect the symbols from stream set A, using the centroid-based constellation Q^([2]) provided by the constellation processing module 140 for the second stage 420, treating the signal contribution from the streams in set B in modified signal vector r^([1]) as interference which is suppressed. The other JD 424 included in the second stage 410 similarly processes the modified signal vector r^([1]) to detect the symbols from stream set B, using the centroid-based constellation Q′^([2]), treating the signal contribution from the streams in set A in modified signal vector r^([1]) as interference which is suppressed. A cancellation block 429 included in or associated with the second stage 420 modifies signal vector r^([1]) to produce a newly modified signal vector r^([2]) given by:

$\begin{matrix} {r^{\lbrack 2\rbrack} = {r^{\lbrack 1\rbrack} - {H\begin{bmatrix} {\hat{s}}_{A}^{\lbrack 1\rbrack} \\ {\hat{s}}_{B}^{\lbrack 1\rbrack} \end{bmatrix}}}} & (20) \end{matrix}$

The JD 432 of the third stage 430 processes the modified signal vector r^([2]) output by the second cancellation block 429 using a subset Q^([3]) of the QAM constellation associated with the transmitted signals.

The third stage 430 uses a JD over all 4 streams. There is no residual signal left in the third stage 430. As a result, none of the signal components are treated as colored noise in the third (final) stage 430, and thus pre-filtering is not employed. Pre-filtering may be employed in the non-final stages 410, 420 as previously described herein. In another embodiment, the SL34 design is used in the 4×4 MIMO, 64-QAM environment. In yet another embodiment, the receiver includes four SDs in the first stage, two JDs in the second stage, and two JDs in the third stage, acting on different signal pairs. Specifically, signals {1,2} and {3,4} are processed together in the second stage, and signals {1,4} and {2,3} are processed together in the third stage. Other signal pairings can be used. In each of these embodiments, all of the reconstructed signals are removed at a given stage, e.g. as given by equation (17). In an alternative subtraction technique, the signals are subtracted differently for different SLI blocks at a given stage. This alternative approach further limits the propagation of errors.

FIG. 9 illustrates an embodiment of an MSA-SLI receiver structure 500 which employs an alternative subtraction approach. The first stage 510 includes four demodulators 512-518 and the second stage 520 includes two demodulators 522, 524. In the first stage 510, the signals are partitioned into sets A′, A″, B′ and B″. In the second stage 520, the signals in A′ and A″ are processed together as set A in the first SLI demodulator block 522. Similarly, the signals in B′ and B″ are processed together as set B in the other SLI demodulator block 524 of the second stage 520. With the previous MSA-SLI techniques described herein, the same modified signal r^([1]) would be fed to both SLI blocks 522, 524 of the second stage 520. However, in this embodiment, a modified signal r_(A) ^([1]) given by: r _(A) ^([1]) =r−H _(A) ŝ _(A) ^([1])  (21) is provided as input to the first demodulator 522 of the second stage 520. A signal canceller 530 generates the modified signal r_(A) ^([1]) which is based on ŝ_(A′) ^([1]), and ŝ_(A″) ^([1]) is subtracted from r. Thus, signal r_(A) ^([1]) is modified based on the reconstructed signals from sets A′ and A″ only. As such, the demodulator 522 which receives r_(A) ^([1]) as input does not see the reduction in interference due to third and fourth demodulators 516, 518 of the first stage 510 which process signals B′ and B″, respectively. Accordingly, the first demodulator 522 of the second stage 520 uses the true symbol energy E_(B), instead of the residual symbol energy E_(B) ^(res).

A second modified signal r_(B) ^([1]) similarly given by: r _(B) ^([1]) =r−H _(B) ŝ _(B) ^([1])  (22) is input to the second demodulator 524 of the second stage 520. Signal r_(B) ^([1]) is modified by a second signal canceller 540 based on the reconstructed signals from sets B′ and B″ only. Again, the second demodulator 524 of the second stage 520 does not benefit from the reduction in interference due to the first and second demodulators 512, 514 of the first stage 510 which process signals A′ and A″, respectively. Thus, the second demodulator 524 of the second stage 520 also adjusts its version of the symbol energy accordingly. Both demodulators 522, 524 of the second stage 520 may implement pre-filtering as previously described herein to further improve receiver performance.

With the above range of variations and applications in mind, it should be understood that the present invention is not limited by the foregoing description, nor is it limited by the accompanying drawings. Instead, the present invention is limited only by the following claims, and their legal equivalents. 

1. A method of jointly demodulating and suppressing interference from a plurality of transmitted signals transmitted using a multi-antenna and/or multi-code transmission scheme, comprising: deriving a set of centroid-based values from subsets of constellation points associated with the transmitted signals for input to each non-final stage of a multi-stage demodulator; demodulating a group of signals input to each of the non-final stages using the corresponding set of centroid-based values as constellation points; suppressing residual interference associated with using the set of centroid-based values as constellation points for demodulating the group of signals input to each of the non-final stages; generating a reconstructed signal based on a plurality of localized symbol decisions determined by the non-final stage of the multi-stage demodulator immediately preceding a final stage of the multi-stage demodulator; removing the reconstructed signal from the group of signals input to the non-final stage immediately preceding the final stage to form a group of modified signals input to the final stage of the multi-stage demodulator; and demodulating the group of modified signals input to the final stage of the multi-stage demodulator using the subset of constellation points input to the final stage to determine a final symbol decision for the plurality of transmitted signals.
 2. A method of jointly demodulating and suppressing interference from a plurality of transmitted signals transmitted using a multi-antenna and/or multi-code transmission scheme, comprising: deriving a set of centroid-based values from subsets of constellation points associated with the transmitted signals for input to each non-final stage of a multi-stage demodulator; demodulating a group of signals input to each of the non-final stages using the corresponding set of centroid-based values as constellation points; suppressing residual interference associated with using the set of centroid-based values as constellation points for demodulating the group of signals input to each of the non-final stages; generating a first reconstructed signal based on a plurality of localized symbol decisions determined by a first group of non-final stages of the multi-stage demodulator, the plurality of localized symbol decisions determined by the first group of non-final stages corresponding to demodulation results for a first set of the transmitted signals; generating a second reconstructed signal based on a plurality of localized symbol decisions determined by a second group of non-final stages of the multi-stage demodulator, the plurality of localized symbol decisions determined by the second group of non-final stages corresponding to demodulation results for a second set of the transmitted signals; removing the first reconstructed signal from the group of signals input to the first group of non-final stages to form a first subset of the modified signals input to a final stage of the multi-stage demodulator; removing the second reconstructed signal from the group of signals input to the second group of non-final stages to form a second subset of the modified signals input to the final stage; and demodulating the first and second subsets of modified signals via respective first and second demodulators of the final stage using the subset of constellation points input to the final stage to determine the final symbol decision for the plurality of transmitted signals.
 3. The method of claim 2, wherein the subset of constellation points input to the final stage of the multi-stage demodulator comprises a first subset input to the first demodulator having a centroid-based value corresponding to the plurality of localized symbol decisions determined by the first group of non-final stages and a second subset input to the second demodulator having a centroid-based value corresponding to the plurality of localized symbol decisions determined by the second group of non-final stages.
 4. A receiver, comprising: A multi-stage demodulator having a plurality of non-final demodulation stages and a final demodulation stage; a constellation processing module operable to derive a set of centroid-based values from subsets of constellation points associated with a plurality of transmitted signals for input to each of the non-final demodulation stages; wherein each of the non-final demodulation stages is operable to demodulate a group of signals input to the non-final demodulation stage using the set of centroid-based values as constellation points and suppress residual interference associated with using the set of centroid-based values as constellation points for signal demodulation; wherein the non-final demodulation stage immediately preceding the final demodulation stage is operable to generate a reconstructed signal based on localized symbol decisions determined by the non-final stage and remove the reconstructed signal from the group of signals input to the non-final demodulation stage to form a group of modified signals input to the final demodulation stage; and wherein the final demodulation stage is operable to demodulate the group of modified signals input to the final demodulation stage using the subset of constellation points input to the final demodulation stage to determine a final symbol decision for the plurality of transmitted signals.
 5. A receiver, comprising: A multi-stage demodulator having a plurality of non-final demodulation stages and a final demodulation stage; a constellation processing module operable to derive a set of centroid-based values from subsets of constellation points associated with a plurality of transmitted signals for input to each of the non-final demodulation stages; wherein each of the non-final demodulation stages is operable to demodulate a group of signals input to the non-final demodulation stage using the set of centroid-based values as constellation points and suppress residual interference associated with using the set of centroid-based values as constellation points for signal demodulation; wherein a first group of the non-final demodulation stages is operable to determine a first reconstructed signal based on a plurality of localized symbol decisions corresponding to demodulation results for a first set of the transmitted signals and remove the first reconstructed signal from the group of signals input to the first group of non-final demodulation stages to form a first subset of the modified signals input to the final demodulation stage; wherein a second group of the non-final demodulation stages is operable to determine a second reconstructed signal based on a plurality of localized symbol decisions corresponding to demodulation results for a second set of the transmitted signals and remove the second reconstructed signal from the group of signals input to the second group of non-final demodulation stages to form a second subset of the modified signals input to the final demodulation stage; and wherein the final demodulation stage comprises a first demodulator operable to demodulate the first subset of modified signals and a second demodulator operable to demodulate the second subset of modified signals, using the subset of constellation points input to the final stage, to determine the final symbol decision for the plurality of transmitted signals.
 6. The receiver of claim 5, wherein the subset of constellation points input to the final stage of the multi-stage demodulator comprises a first subset input to the first demodulator having a centroid-based value corresponding to the plurality of localized symbol decisions determined by the first group of non-final demodulation stages and a second subset input to the second demodulator having a centroid-based value corresponding to the plurality of localized symbol decisions determined by the second group of non-final demodulation stages. 